<extend name="Public/base"/>
<block name="body">
  <!-- 标题栏 -->
  
  <div class="main-title">
    <h2>在线升级</h2>
  </div>
  <h4>1、升级操作教程</h4>
  <p>第一步：备份服务器文件，为了安全和方便如果升级失败能恢复原样，请一定要把你的整个网站的文件进行备份</p>
  <p>第二步：备份数据库，把数据库导出成SQL文件进行备份</p>
  <p>第三步：下载升级包，如果有多个升级包，一定要注意按升级包的版本号从小到大顺序下载升级，否则会导致系统异常</p>
  <p>第四步：解压升级包，查看里面的readem.txt升级说明，如果里面有升级操作说明，优先按里面的说明进行升级操作</p>
  <p>第五步：把升级包里的文件上传到你的网站，并覆盖旧文件。覆盖前请确认已经做好备份，如果你的网站文件有修改过，请覆盖前用文件对比工具进行对比，确认是否可以覆盖。</p>
  <p>第六步：如果升级包的根目录下有update_db_tool.php，说明需要升级数据库，请使用下面的数据库升级工具进行升级</p>
  <p>第七步：清空缓存，把 Runtime 目录下的目录和文件全部删除即可，至此升级完毕</p>
  <p>&nbsp;</p>
  <php>if(!empty($noWritable)) { </php>
  建议设置目录：
  <volist name='noWritable' id='vo'> {$vo}&nbsp; </volist>
  的可写权限来开启一键升级这个简单而高效的功能
  <php> } </php>
  <p>&nbsp;</p>
  <div> </div>
  <div>
    <h4>2、数据库升级工具</h4>
    <p>此工具可用于执行升级包里的数据库升级文件：update_db_tool.php，请先确认此升级文件已经放到网站根目录，然后点击下面的升级按钮升级即可。升级完后要及时把update_db_tool.php文件删除，以防重复升级导致数据库数据错乱</p>
    <a class="btn" href="{:U('admin/Update/deal_sql')}">升级数据库</a>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
  </div>

  <div id="showInfomation"></div>
</block>
<block name="script">
<script type="text/javascript">
function showMsg(msg){
	$('#data-table').hide();
    $('#showInfomation').html('<div id="listInfo"><div class="content"><h3 class="center"><img src="__PUBLIC__/Admin/images/loading_icon.gif" class="mr10"/>'+msg+'...</h3></div></div>');
}
function needUpateOther(title){
	updateAlert('您需要先升级 ' + title + ' 这个升级包后才能更新此升级包');
	setTimeout(function(){
		$('#top-alert').find('button').click();
		$(that).removeClass('disabled').prop('disabled',false);
	},3000);
}
function checkVersion(){
    showMsg('更新版本查询中');
    var postURL = "{:U('admin/Update/step01_checkVersionByAjax')}";
	$.post(postURL, {id:1}, function(res){
	    $('#showInfomation').html(res);
	});
}
function downloadPackage(version){
	showMsg('下载更新包中...请稍等');    
    var postURL = "{:U('admin/Update/step02_download')}";
	$.post(postURL, {version:version}, function(res){
	    if(res==0){
		   $('#showInfomation').html('<div id="listInfo"><div class="content"><h3 class="center">更新包下载失败，请检查你的网络连接是否正常</h3></div></div>');
		}else{
		   window.location.href="{:U('admin/Update/index')}&step=unzipPackage&version=" + version;
		}
	});
}
function unzipPackage(){
    showMsg('更新包解压中');
    var version = "{:$_GET['version']|t}";
	var postURL = "{:U('admin/Update/step03_unzipPackage')}&version=" + version;
	$.post(postURL, {id:1}, function(res){
	    if(res!=1){
		   $('#showInfomation').html(res);
		}else{
		   window.location.href="{:U('admin/Update/index')}&step=checkFileIsWritable&version=" + version;
		}
	});	
}
function checkFileIsWritable(){
    showMsg('判断系统文件的可写权限');
	var packageName = "{:$_GET['packageName']|t}";
	var postURL = "{:U('admin/Update/step04_checkFileIsWritable')}&packageName=" + packageName;
	$.post(postURL, {id:1}, function(res){
         if(res!=1){
		   $('#showInfomation').html(res);
		}else{
		   window.location.href="{:U('admin/Update/index')}&step=copyFileToProject";
		}
	});	
}
function copyFileToProject(){
    showMsg('更新系统文件中');    
	var postURL = "{:U('admin/Update/step06_overWritten')}";
	$.post(postURL, {id:1}, function(res){
         if(res!=1){
		   $('#showInfomation').html(res);
		}else{
		   window.location.href="{:U('admin/Update/index')}&step=dealsql";
		}
	});	
}

function dealsql(){
    showMsg('更新数据库数据中');    
	var postURL = "{:U('admin/Update/step07_dealSQL')}";
	$.post(postURL, {id:1}, function(res){
	    window.location.href="{:U('admin/Update/index')}&step=finishUpate";
	});	
}

function finishUpate(){
    showMsg('正在完成升级操作');    
	var postURL = "{:U('admin/Update/step08_finishUpate')}";
	$.post(postURL, {id:1}, function(res){
	    if(res==1){
		   window.location.href="{:U('admin/Update/upateAll')}";
		}else{
		   window.location.href="{:U('admin/Update/index')}";
		}
	});
}
var step = "{:$_GET['step']|t}";

if(step=='unzipPackage'){
    unzipPackage();
}else if(step=='checkFileIsWritable'){
    checkFileIsWritable();
}else if(step=='copyFileToProject'){
    copyFileToProject();
}else if(step=='dealsql'){
    dealsql();
}else if(step=='finishUpate'){
    finishUpate();	
}else{
    checkVersion();
}
$(function(){
	 //导航高亮
    highlight_subnav('{:U('index')}');
});
</script>
</block>
